public class JavaSE725 {
    /*使用函数求最大值
        题目内容：
        创建方法求两个数的最大值max2，随后再写一个求3个数的最大值的函数max3。
        要求：在max3这个函数中，调用max2函数，来实现3个数的最大值计算
     */
   /* public static int max2(int x,int y) {
        return x + y;
    }
    public static int max3(int x,int y,int z) {
        return max2(x,y) + z;
    }

    public static void main(String[] args) {
        System.out.println(max3(1,2,3));
    }*/

    //求N的阶乘
    /*public static int cheng(int n) {
        int temp = 1;
        for (int i = 1; i <= n; i++) {
            temp *= i;
        }
        return temp;
    }
    public static void main(String[] args) {
        System.out.println(cheng(3));
    }*/

    //求阶乘和
    /*public static int cheng(int n) {
        int temp = 1;
        for (int i = 1; i <= n; i++) {
            temp *= i;
        }
        return temp;
    }
    public static int sum(int n) {
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += cheng(i);
        }
        return sum;
    }

    public static void main(String[] args) {
        System.out.println(sum(2));
    }*/


    /*求和的重载
      题目内容：
      在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码，求出结果
    * */
    /*public static int add(int a, int b) {
        return a + b;
    }
    public static double add(double a, double b, double c) {
        return a + b + c;
    }

    public static void main(String[] args) {
        System.out.println(add(1,2));
        System.out.println(add(1.0,5.6,3.2));
    }*/


    /*
    * 求最大值方法的重载
       题目内容：
        在同一个类中定义多个方法：要求不仅可以求2个整数的最大值，还可以求3个小数的最大值？
    * */
/*
    public static int max(int x, int y) {
        if (x > y) {
            return x;
        }else {
            return y;
        }
    }
    public static double max(double x, double y, double z) {
        if (x > y) {
            if (x > z) {
                return x;
            }else {
                return z;
            }
        }else {
            if (y > z) {
                return y;
            }else {
                return z;
            }
        }
    }

    public static void main(String[] args) {
        System.out.println(max(8,15));
        System.out.println(max(1.5,0.5,9.9));
    }*/

    /*
    * 题目名称：
        斐波那契数列
        题目内容：
        求斐波那契数列的第n项。(递归实现)
    * */
    /*public static int jiSuan(int x) {
        if (x == 1) {
            return 0;
        } else if (x == 2) {
            return 1;
        }else {
            return jiSuan(x - 1) + jiSuan(x - 2);
        }
    }
    public static void main(String[] args) {
        System.out.println(jiSuan(10));
    }*/

    /*
    * 题目名称：
        斐波那契数列
        题目内容：
        求斐波那契数列的第n项。(迭代实现---循环实现)
    * */
    /*public static int feiBo(int n) {
        int[] arr = new int[100];
        arr[0] = 0;
        arr[1] = 1;
        for (int j = 2; j <= n; j++) {
            arr[j] = arr[j - 1] + arr[j - 2];
        }
        return arr[n - 1];
    }
    public static void main(String[] args) {
        System.out.println(feiBo(10));
    }*/

    /*按顺序打印一个数字的每一位，用递归的方法*/
    /*public static void printBit(int num) {
        if (num / 10 == 0) {
            System.out.print(num + "\t");
            return;
        }else {
            printBit(num / 10);
            System.out.print(num % 10 + "\t");
        }
    }

    public static void main(String[] args) {
        printBit(123);
    }*/


    /*递归求1+2+3+4+5+6+7+8+9+10*/
    /*public static int sum (int n) {
        if (n == 1) {
            return n;
        }else {
            return n + sum(n - 1);
        }
    }
    public static void main(String[] args) {
        System.out.println(sum(10));
    }*/


    /*
    *  写一个递归方法，输入一个非负整数，返回组成它的数字之和. 例如，输入 1729, 则应该返回1+7+2+9，它的和是19
    * */
    public static int sumBit(int num) {
        if (num / 10 == 0) {
            return num;
        }else {
            return (num % 10) + sumBit(num / 10);
        }
    }
    public static void main(String[] args) {
        System.out.println(sumBit(1729));
    }
}
